1. Field
The present application relates generally to the operation of wireless communication systems, and more particularly, to efficient packet routing.
2. Background
Network address translation (NAT) is used to expand the usable address space of a network. In one implementation, a NAT module translates only the IP/transport header information of a data packet. This impacts applications which communicate network IP/port information to their peers in the data packet payload, as this information is not translated by the NAT module. This leads to dropped packet as the NAT module may reject the incoming packet connections on these IP/ports.
Application Level Gateways (ALGs) allow for application specific NAT traversal by translating the embedded IP/port information in the application payload to the NAT external IP/port. ALGs may interact with the NAT module to allow incoming data connections or perform other operations needed to make applications behind a NAT module communicate with peers in external realms.
Unfortunately, in conventional systems, ALGs are application specific and can introduce significant processing delays as they parse the application payload searching for embed IP/port information. These delays if introduced directly in the NAT processing path could impact all packet flows leading to undue increase in round trip times (RTTs), and as a consequence would also degrade the overall throughput. Additionally, wireless embedded devices (or mobile routers) are limited in CPU bandwidth, which implies that an increase in NAT processing would impact generic system performance. Furthermore, increased NAT processing due to ALG addition would also cause mobile routers to consume more power leading to quicker drainage of batteries and frequent recharging.
Therefore, it would be desirable to have a system that provides efficient NAT and ALG processing to overcome the problems associated with conventional systems as described above.